# 通讯录程序
def main():
    # 初始化通讯录，使用字典存储联系人信息
    # 键为联系人姓名，值为另一个字典，包含电话和邮箱
    contacts = {}

    while True:
        # 显示菜单
        print("\n通讯录管理系统")
        print("1. 添加联系人")
        print("2. 删除联系人")
        print("3. 查找联系人")
        print("4. 显示所有联系人")
        print("5. 退出")

        # 获取用户选择
        choice = input("请输入您的选择（1-5）：")

        if choice == "1":
            # 添加联系人
            name = input("请输入联系人姓名：")
            if name in contacts:
                print("该联系人已存在！")
            else:
                phone = input("请输入联系人电话：")
                email = input("请输入联系人邮箱：")
                # 将联系人信息存储到字典中
                contacts[name] = {"phone": phone, "email": email}
                print("联系人添加成功！")

        elif choice == "2":
            # 删除联系人
            name = input("请输入要删除的联系人姓名：")
            if name in contacts:
                # 使用del删除字典中的键值对
                del contacts[name]
                print("联系人删除成功！")
            else:
                print("该联系人不存在！")

        elif choice == "3":
            # 查找联系人
            name = input("请输入要查找的联系人姓名：")
            if name in contacts:
                # 获取联系人信息
                contact_info = contacts[name]
                print(f"联系人：{name}")
                print(f"电话：{contact_info['phone']}")
                print(f"邮箱：{contact_info['email']}")
            else:
                print("该联系人不存在！")

        elif choice == "4":
            # 显示所有联系人
            if not contacts:
                print("通讯录为空！")
            else:
                print("\n通讯录中的联系人：")
                for name, info in contacts.items():
                    print(f"姓名：{name}")
                    print(f"电话：{info['phone']}")
                    print(f"邮箱：{info['email']}")
                    print("-" * 20)

        elif choice == "5":
            # 退出程序
            print("感谢使用通讯录管理系统，再见！")
            break

        else:
            print("无效的选择，请重新输入！")


if __name__ == "__main__":
    main()